#ifndef _WT_COLLECTION_CMDS_H
#define _WT_COLLECTION_CMDS_H

typedef enum {
  WT_CLN_CMD_DONE,
  WT_CLN_CMD_MISSING,
  WT_CLN_CMD_NOT_FOUND
} WtClnCmdStatus;

int WtClnToArray(Tcl_Interp *interp, Tcl_Obj *cln,
                 Tcl_Obj *arrName, int multiVals);

Tcl_Obj *WtClnCmdGetCln(Tcl_Interp *interp, Tcl_Obj *obj, WtClnItemType *clnType);

WtClnCmdStatus WtClnCmdHelper(ClientData clientData, Tcl_Interp *interp,
                              int objc, Tcl_Obj *const objv[], int *tclResult,
                              WtClnItemType *clnType, int readOnly, int appendUsage);

void WtClnCmdUsageError(Tcl_Interp *interp, Tcl_Obj *cmd, int readOnly);

void WtClnCmdAppendUsage(Tcl_Interp *interp, Tcl_Obj *cmd, int readOnly);

WtClnCmdStatus WtClnMethodHelper(ClientData clientData, Tcl_Interp *interp,
                                 int objc, Tcl_Obj *const objv[], int *tclResult,
                                 Tcl_Obj *cln, int readOnly, int appendUsage);

void WtClnMethodUsageError(Tcl_Interp *interp, Tcl_Obj *cmd, int readOnly);

void WtClnMethodAppendUsage(Tcl_Interp *interp, Tcl_Obj *cmd, int readOnly);

#endif /* !_WT_COLLECTION_CMDS_H */
